package com.projectCommon.util.commonUtil;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;

public class DateUtil {
    /**
     * 获取当前季度的第一天
     * @return 返回日期的字符串
     */
    public static String queryCurrentQuarterFirstDay(){
        LocalDate currentDate = LocalDate.now();
        int currentMonthValue = currentDate.getMonthValue();
        Month startMonth = Month.of(((currentMonthValue - 1) / 3) * 3 + 1);
        int year = currentDate.getYear();
        return LocalDate.of(year, startMonth, 1).toString();
    }

    /**
     * @return 返回今天的日期
     */
    public static String queryCurrentDay(){
        return LocalDate.now().toString();
    }

    public static String getLastQuarterFirstDay() {
        // 创建Calendar实例
        Calendar calendar = Calendar.getInstance();
        // 将日期设置为当前季度的第一个月
        int month = calendar.get(Calendar.MONTH);
        int quarter = (month / 3) + 1;
        calendar.set(Calendar.MONTH, (quarter - 1) * 3);

        // 将日期设置为当前季度的第一个月的第一天
        calendar.set(Calendar.DAY_OF_MONTH, 1);

        // 减去一个季度得到上个季度的第一天
        calendar.add(Calendar.MONTH, -3);
        // 使用SimpleDateFormat格式化日期
        return new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
    }

    //总想着 返回一个LocalDateTime 代表一个格式化之后的时间。
    public static String getFormattingTime(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    public static String formatTime(LocalDateTime localDateTime){
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return localDateTime.format(dateTimeFormatter);
    }
}
